Soru & Cevap

Fiziksel tuş kullanımı

26.12.2013 - 05:49

MainActiviy'imde back butonuna basılınca "çıkmak istediğinizden emin misiniz?" diye bir alert oluşturmak istiyorum. Back butonuna basılıp basılmadığının kontrolünü nasıl sağlarım ?

34 Görüntülenme

8 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user oguztugay
oguztugay
30.12.2013 - 06:08

projeme bende bu olayı eklemek istiyorum ama daha yeniyim ve nasıl yapabilcegim hakkın bir fikrim yok yukardaki kodu yazmam yeterli olucaksa nereye yazmalıyım acaba

Profile picture for user yasinkafadar
yasinkafadar
29.12.2013 - 11:53

Selam Mümin,

Eğer senin uygulamanın ait Activity Stack'inde hala finish olmamaış Activity'ler varsa böyle çalışması gayet normal. Aşağıdaki linki incelemeni öneririm. Ayrıca uygulamanda açılıp kapanan ekranları gözden geçirip akışın doğru olup olmadığını da kontrol edebilirsin.

http://developer.android.com/guide/components/tasks-and-back-stack.html

picture-3650-1421928561.jpg
anilsozeri
26.12.2013 - 11:38

alertbox.setCancelable(false); kodunu eklersen AlertDialog herhangi bir tercih yapana kadar kapanmayacaktır.

picture-8572-1421266577.png
mmnbsl
26.12.2013 - 06:57

Problem hala devam ediyor. Sorun şu , Back butonuna basınca oluşturduğum alertDialog açılıyor. Emilatorde çalıştırdığımda (çok yavaş çalıştığı için) en azından butonlar çalıştığını gördüm. Uygulamayı telefona attığımda farkettim alert çok kısa bir süre ekranda kalıp, yine back tuşu kendi görevine devam edip programı kapatıyor basar basmaz. 

picture-8572-1421266577.png
mmnbsl
26.12.2013 - 06:36

onKeyDown ile çalıştı teşekkür ederim

picture-483-1374012946.jpg
kerem.kusmezer
26.12.2013 - 06:05

super.onBackPressed()'i çağırmazsan, back işlemi iptal olacaktır. Daha sonra yukarıdaki gibi finish ile kapatabilirsin.

picture-1626-1379602554.jpg
orhun.sozer
26.12.2013 - 06:03

Merhaba,

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
            AlertDialog.Builder alertbox = new AlertDialog.Builder(MainActivity.this);
            //alertbox.setIcon(R.drawable.info_icon);
            alertbox.setTitle("Uygulamadan çıkmak istiyor musunuz?");
            alertbox.setPositiveButton("Evet", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) { 
                   // finish used for destroyed activity
                    finish();
                }
            });

            alertbox.setNegativeButton("Hayır", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) {
                        //.... 
              }
            });

            alertbox.show();
        }
        return super.onKeyDown(keyCode, event);
    }

 

İyi çalışmalar.

picture-8572-1421266577.png
mmnbsl
26.12.2013 - 06:02

onBackPressed() methodunu override ettim içinde de Alert oluşturdum ama back tuşuna basılınca hem oluşturduğum alert çalışıyor hem de bir önceki aktivitye gidiyor. Bunu nasıl engellerim ?